package com.lufei.message_system.Data.MbtiTypeDescriptionVD;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.Pattern;
import java.util.Date;

@Data
@Schema(name = "MbtiTypeDescriptionVO", description = "性格类型描述")
public class MbtiTypeDescriptionVO {
    @Pattern(regexp = "^(INTJ|INTP|ENTJ|ENTP|INFJ|INFP|ENFJ|ENFP|ISFJ|ISFP|ESFJ|ESFP|ISTJ|ISTP|ESTJ|ESTP)$",
            message = "MBTI类型必须是允许的16种类型之一")
    @Schema(description = "mbti类型", example = "INTJ",
            allowableValues = {"INTJ", "INTP", "ENTJ", "ENTP", "INFJ", "INFP", "ENFJ", "ENFP", "ISFJ", "ISFP", "ESFJ", "ESFP", "ISTJ", "ISTP", "ESTJ", "ESTP"})
    private String mbtiType;

    @Pattern(regexp = "^(建筑师|逻辑学家|指挥官|辩论家|调停者|保护者|探险家|观察者|成就者|执行者|监督者|协调者|分析者|创新者|管理员|企业家)$", message = "类型名称必须是允许的16种类型之一")
    @Schema(description = "类型名称（支持精确查询）", example = "建筑师",
            allowableValues = {"建筑师", "逻辑学家", "指挥官", "辩论家", "调停者", "保护者", "探险家", "观察者", "成就者", "执行者", "监督者", "协调者", "分析者", "创新者", "管理员", "企业家"})
    private String typeName;

    @Schema(description = "类型详细描述", example = "建筑师（INTJ）是内向、直觉、思考、判断型人格。")
    private String description;

    @Schema(description = "模式", example = "领导模式：以事实和经验做决定...")
    private String model;

    @Schema(description = "工作环境倾向性", example = "喜欢与现实、工作努力、关注事实和结果的人共事...")
    private String workEnvironmentPreferences;

    @Schema(description = "缺点", example = "因受惠于日常工作而忽视具有长远意义的目标...")
    private String weakness;

    @Schema(description = "发展建议", example = "除了关注现实问题，需关注更深远的、定向于未来的问题...")
    private String developmentSuggestions;

    @Schema(description = "适合的领域", example = "工商业领域、政府机构 金融银行业...")
    private String filed;

    @Schema(description = "适合的职业", example = "审计师、会计、财务经理...")
    private String career;

    @Schema(description = "创建时间", example = "2023-01-01 00:00:00")
    private Date createTime;

    @Schema(description = "更新时间", example = "2023-12-31 00:00:00")
    private Date updateTime;
}
